package com.glamour.hlcity.common.util;

import java.text.MessageFormat;
import java.util.List;

import org.apache.commons.lang.StringUtils;

/**
 * 
 * @author zhaoxing.liuzx
 */
public class StringUtil {
	public final static String DELIM = " ";
	public final static String DOTS = ".";
	/**
	 * "/"
	 */
	public final static String SPLIT_X = "/";

	public StringUtil() {
	}

	/**
	 * 填充数据
	 * 
	 * @param template
	 *            模板
	 * @param params
	 *            参数
	 * @return
	 */
	public static String format(String template, Object... params) {
		return MessageFormat.format(template, params);
	}

	/**
	 * 将字符串类型以 regex split
	 * 
	 * @param url
	 * @return
	 */
	public static List<String> split(String str, String regex) {
		if (StringUtils.isBlank(str)) {
			return ListUtil.emptyList();
		}
		return ListUtil.toList(str.split(regex));
	}

	/**
	 * 获得文件的后缀
	 * 
	 * @param fileName
	 * @param defaultVaule
	 * @return
	 */
	public static String suffix(String fileName, String defaultValue) {
		if (StringUtils.isBlank(fileName)) {
			return defaultValue;
		}
		int pos = fileName.lastIndexOf(DOTS);
		if (pos != -1) {
			return fileName.substring(pos+1);
		}
		return defaultValue;
	}
	
	/**
	 * 如prefix是get,fieldName是type则返回getType
	 * @param prefix
	 * @param fieldName
	 * @return
	 */
	public static String prefixMethod(String prefix,String fieldName){
		if(StringUtils.isBlank(fieldName) || StringUtils.isBlank(prefix)){
			return null;
		}
		return prefix.concat(String.valueOf(fieldName.charAt(0)).toUpperCase().concat(fieldName.substring(1)));
	}
	
	/**
	 * 判定给定的字符串都不为null或者""
	 * @param types
	 * @return
	 */
	public static Boolean isNull(String... types){
		if(types==null){
			return Boolean.TRUE;
		}
		for(String type:types){
			if(type==null || type.equals("")){
				return Boolean.TRUE;
			}
		}
		return Boolean.FALSE;
		
	}

	/**
	 * 判断str是否为空
	 * @param str
	 * @return
	 */
	public static boolean isBlank(String str) {
		if(str==null || str==""){
			return true;
		}
		return false;
	}

}
